Fix: Managing the availability of the clear logs button on Log page#4836
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR refines the Log page clear-logs button state so users cannot repeatedly trigger log deletion while the modal or table refresh is in progress.
Changes:
- Disables the clear-logs button immediately after it is clicked.
- Re-checks selected rows after table load success and AJAX modal-loading failures.
- Extracts clear button enable/disable logic into
manageClearButtonAvailability().
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…ng the "#clearLogsConfirmBtn" button. The issue was related to an unnecessary call to manageClearButtonAvailability() (log.js)
Contributor
Author
|
@connortechnology |
Contributor
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 1 out of 1 changed files in this pull request and generated 1 comment.
Comments suppressed due to low confidence (2)
web/skins/classic/views/js/log.js:259
manageClearButtonAvailability()is only re-run onload-success.bs.table. If the post-deletetable.bootstrapTable('refresh')fails to load (e.g., request error), the clear logs button can remain disabled until the user changes selection. Consider also handlingload-error.bs.table(or another refresh completion/failure signal) to restore the button state based on current selections.
table.on('check.bs.table uncheck.bs.table check-all.bs.table uncheck-all.bs.table', manageClearButtonAvailability);
table.on('load-success.bs.table', function() {
manageClearButtonAvailability();
});
web/skins/classic/views/js/log.js:277
manageClearButtonAvailability(enable = null)is used both as a bootstrap-table event handler (where the first argument is an event object) and as a boolean override (false). Also, theenable === truebranch is effectively redundant given the!selections.lengthcheck. Consider normalizing the parameter (e.g., only treat booleans as overrides) and simplifying the logic to make the intent clearer and avoid future misuse.
function manageClearButtonAvailability(enable = null) {
const selections = table.bootstrapTable('getSelections');
const clearLogsBtn = document.getElementById('clearLogsBtn');
if (clearLogsBtn) {
if (enable === false || !selections.length) {
clearLogsBtn.disabled = true;
} else if (enable === true || selections.length) {
clearLogsBtn.disabled = false;
}
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The delete logs button now remains active even after deleting logs (both successful and unsuccessful).
This PR allows for more accurate management of the button's availability.